package com.jsmile.cloud.authc.api.enums;

import com.jsmile.mall.api.constants.JSmileConstant;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 登录类型(枚举)
 *
 * @author Morily
 */
@Getter
@AllArgsConstructor
public enum SmsTypeEnum {

    /**
     * 注册短信
     */
    REGISTER("R", "注册短信"),
    /**
     * 找回密码短信
     */
    GET_PASS("F", "找回密码短信"),
    /**
     * 找回支付密码短信
     */
    GET_PAY_PASS("Z", "找回支付密码短信"),

    /**
     * 登录短信
     */
    LOGIN("L", "登录短信");

    /**
     * 值
     */
    private String value;
    private String name;

    /**
     * 根据value获取 名称
     */
    public static SmsTypeEnum nameOf(String value) {
        SmsTypeEnum type = SmsTypeEnum.REGISTER;
        if (null != value) {
            for (SmsTypeEnum rt : SmsTypeEnum.values()) {
                if (rt.getValue().equals(value)) {
                    type = rt;
                    break;
                }
            }
        }
        return type;
    }

    /**
     * 获取短信模板
     */
    public static String getSmsTemplate(String value) {
        if (SmsTypeEnum.REGISTER.getValue().equals(value)) {
            return "SMS_162547671";
        } else if (SmsTypeEnum.GET_PASS.getValue().equals(value)) {
            return "SMS_162524911";
        } else if (SmsTypeEnum.GET_PAY_PASS.getValue().equals(value)) {
            return "SMS_162636043";
        } else if (SmsTypeEnum.LOGIN.getValue().equals(value)) {
            return "SMS_162547689";
        }
        return "";
    }

    /**
     * 获取缓存名称
     */
    public static String getCacheName(String value) {
        if (SmsTypeEnum.REGISTER.getValue().equals(value)) {
            return JSmileConstant.SMS.SMS_REG_CODE;
        } else if (SmsTypeEnum.GET_PASS.getValue().equals(value)) {
            return JSmileConstant.SMS.SMS_FORGET_PWD;
        } else if (SmsTypeEnum.GET_PAY_PASS.getValue().equals(value)) {
            return JSmileConstant.SMS.SMS_FORGET_PAY_PWD;
        } else if (SmsTypeEnum.LOGIN.getValue().equals(value)) {
            return JSmileConstant.SMS.SMS_LOGIN_CODE;
        }
        return "";
    }
}
